package com.testin.utils;


import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.MimeMessage;
import com.testin.utils.MailConfig;
import com.testin.model.Require;
import com.testin.model.User;


public class WriteMailModel {
	
	private MailConfig mailConfig;	
	
	/**
	 * 邮件模板
	 * @param mailStr
	 * @param returnStr
	 * @param user
	 * @param require
	 * @param taskArray
	 * @param questionArray
	 * @throws MessagingException
	 */
	public void sendMail(String mailStr,User user,Require require,String[] taskArray,String[] questionArray) throws MessagingException {

		Properties   props   =   System.getProperties(); 
		Session   session   =   Session.getDefaultInstance(props,   null); 
		StringBuffer   htmlText = new StringBuffer();
		
		htmlText.append("<html>");	
		htmlText.append("<head>");
		htmlText.append("<meta charset=\"utf-8\">");
		htmlText.append("</head>");
		htmlText.append("<body>");
		htmlText.append("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\">");
		htmlText.append("<tr>");
		htmlText.append("<td style=\"padding:40px 20px; background-color:#FBFBFB;\"><table width=\"780\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\" style=\"margin:0 auto\">");
		htmlText.append("<tr>");    
		htmlText.append("<td align=\"left\"><div style=\"background-color:#FFF; color:#333; font-size:12px; line-height:1.6; font-family:Helvetica Neue,Luxi Sans,DejaVu Sans,Tahoma,Hiragino Sans GB,STHeiti,Microsoft YaHei,Arial,sans-serif; border:#D5D5D5 solid 1px; padding:10px;\">");     
		htmlText.append("<div style=\"font-size:24px; text-align:center; padding-bottom:10px; border-bottom:#D5D5D5 solid 1px;\">测试需求</div>");          
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");                
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">客户联系信息</caption>");                        
		htmlText.append("<tr>");       
		
		                
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">项目</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">内容</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                  
		htmlText.append("</tr>");                 
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">1</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">联系人</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getName()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">2</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">联系电话/手机</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getPhone()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");    
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">3</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">Email</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getMail()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");    
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">4</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">QQ/MSN</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getImCode()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");    
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">5</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">公司名称</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getCmpName()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");    
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">6</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">公司地址</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getCmpAddress()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");    
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">7</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">公司网址</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+user.getCmpUrl()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");                   
		htmlText.append("</table>");   
		
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");              
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                
		htmlText.append("测试对象");                 
		htmlText.append("</caption>");               
		htmlText.append("<tr>");                
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">测试对象</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">描述</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                   
		htmlText.append("</tr>");                 
		htmlText.append("<tr>");                
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">1</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">"+this.getTypeStr(require.getAppType())+"</td>");                  
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getAppUrl()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:160px;\">"+require.getAppDesc()+"</td>");                   
		htmlText.append("</tr>");                        
		htmlText.append("</table>");   

		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");               
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                 
		htmlText.append("测试场景设计（关键任务测试）");                 
		htmlText.append("</caption>");                
		htmlText.append("<tr>");               
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">测试场景描述</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                 
		htmlText.append("</tr>");               
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">1</td>");                  
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">"+require.getAppTestScene()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                  
		htmlText.append("</tr>");                               
		htmlText.append("</table>"); 
		
		
		
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");               
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                 
		htmlText.append("要求测试者录制视频时完成的任务");               
		htmlText.append("</caption>");                
		htmlText.append("<tr>");                 
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">任务描述</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                   
		htmlText.append("</tr>");
		if(questionArray!=null){
			for (int j = 0; j < questionArray.length; j++) {
				htmlText.append("<tr>");                 
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">"+(j+1)+"</td>");                   
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">"+questionArray[j]+"</td>");                   
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                   
				htmlText.append(" </tr>");             
			}
		}      
		htmlText.append("</table>");         
		
		
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");              
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                
		htmlText.append("要求测试者录制视频后回答的问题");                
		htmlText.append("</caption>");                 
		htmlText.append("<tr>");                 
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">问题描述</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                  
		htmlText.append("</tr>"); 
		
		if(taskArray!=null){
			for (int j = 0; j < taskArray.length; j++) {
				htmlText.append("<tr>");                 
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">"+(j+1)+"</td>");                  
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">"+taskArray[j]+"</td>");                   
				htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                   
				htmlText.append("</tr>");  
			}
		}		                
		htmlText.append("</table>");   
		
		
		
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");               
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                
		htmlText.append("测试者要求");                 
		htmlText.append("</caption>");                 
		htmlText.append("<tr>");                 
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">数量</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">性别</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">年龄</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">年收入</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">智能手机使用年限</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">其他要求</th>");                   
		htmlText.append("</tr>");  
	
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpQuantity()+"</td>");                  
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpSex()+"</td>");                  
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpAgeMin()+"-"+require.getpAgeMax()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpRevenue()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpUseterm()+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\">"+require.getpRequireOther()+"</td>");                   
		htmlText.append("</tr>");                 
		htmlText.append("</table>");               
		htmlText.append("<table style=\"width:100%; border:#D5D5D5 solid 1px; border-collapse:collapse;\">");               
		htmlText.append("<caption style=\"font-size:16px; font-weight:bold; padding:10px 0; text-align:left;\">");                 
		htmlText.append("测试设备要求");                 
		htmlText.append("</caption>");                 
		htmlText.append("<tr>");                 
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">序号</th>");                  
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">设备</th>");                   
		htmlText.append("<th style=\"background-color:#39F; color:#FFF; padding:4px 8px; border:#D5D5D5 solid 1px;\">备注</th>");                  
		htmlText.append("</tr>");                
		htmlText.append("<tr>");                 
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:40px; text-align:center;\">1</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px; width:320px;\">"+this.getSbTypeStr(require.getPlatformType())+"</td>");                   
		htmlText.append("<td style=\"padding:4px 8px; border:#D5D5D5 solid 1px;\"></td>");                   
		htmlText.append("</tr>");                 	   
		htmlText.append("</table>"); 
		
		htmlText.append("</div></td>");             
		htmlText.append("</tr>");         
		htmlText.append("</table></td>");      
		htmlText.append("</tr>");   
		htmlText.append("</table>"); 
		htmlText.append("</body>"); 
		htmlText.append("</html>");
		

		Message  message =new MimeMessage(session);
		message.setContent(htmlText,"text/html"); 
		SendMultiPartEmail sendMultiPartEmail = new SendMultiPartEmail(ConfigurationUtils.SMTP_HOST, ConfigurationUtils.MAIL_FROM,ConfigurationUtils.MAIL_PASSWORD);
		sendMultiPartEmail.setFrom(ConfigurationUtils.MAIL_FROM);
		sendMultiPartEmail.addSendTo(mailStr);
		sendMultiPartEmail.setSubject(ConfigurationUtils.SUBJECT);
		// 获取新邮件内容
		sendMultiPartEmail.setMessageBody(htmlText.toString());
		try{
		sendMultiPartEmail.send();
		}catch(Exception e){
		
		}
	}

	public MailConfig getMailConfig() {
		return mailConfig;
	}

	public void setMailConfig(MailConfig mailConfig) {
		this.mailConfig = mailConfig;
	}
	

	public String getTypeStr(String  type){
		String str="";
		if(type!=null  && type!=""){
		switch(Integer.parseInt(type)){
		case 1: str="Native APP";
		    break;
		case 2: str="WEB APP";
	       break;
		case 3: str="未发布的APP";
	       break;
		}

		}
		return str;
	}
	
	public String getSbTypeStr(String  type){
		String str="";
		if(type!=null  && type!=""){
		switch(Integer.parseInt(type)){
		case 1: str="iPhone";
		    break;
		case 2: str="iPad";
	       break;
		case 3: str="Android";
	       break;
		case 4: str="WindowsPhone";
	       break;
		}

		}
		return str;
	}

}
